#ifndef GDRPRINTVISITOR_H_
#define GDRPRINTVISITOR_H_

#include "boost/variant.hpp"
#include <string>
#include <vector>
#include "chararray.h"

using namespace std;

namespace opsrc {
	namespace stdf {

		
            class GdrPrintVisitor : public boost::static_visitor<std::string> {
            public:
                    GdrPrintVisitor();
                    virtual ~GdrPrintVisitor();

                    std::string operator()(const unsigned int& val) const;
                    std::string operator()(const signed int& val) const;
                    std::string operator()(const long& val) const;
                    std::string operator()(const float& val) const;
                    std::string operator()(const double& val) const;
                    std::string operator()(const std::string& val) const;
                    //std::string operator()(const vector<int> &val)const;
                    //std::string operator()(const vector<bool> &val)const;
                    std::string operator()(const CharArray& val) const;
                };
		
		
	}	// namespace stdf
}		// namespace opsrc

#endif /*GDRPRINTVISITOR_H_*/
